// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "LevelUpInfo.generated.h"

/** 角色升级数据结构体 */
USTRUCT()
struct FAUraLevelUpInfo
{
	GENERATED_BODY()
	
	/** 升到此等级所需经验值 */
	UPROPERTY(EditDefaultsOnly)
	int32 LevelUpRequirement = 0;

	/** 达到此等级奖励的属性点值 */
	UPROPERTY(EditDefaultsOnly)
	int32 AttributePointsAward = 0;

	/** 达到此等级的可分配技能点数 */
	UPROPERTY(EditDefaultsOnly)
	int32 SpellPointsAward = 0;
};

/**
 * 角色升级数据
 */
UCLASS()
class AURA_API ULevelUpInfo : public UDataAsset
{
	GENERATED_BODY()

public:
	
	/** 所有等级升级信息 */
	UPROPERTY(EditDefaultsOnly)
	TArray<FAUraLevelUpInfo> LevelUpInformation;

	/** 根据经验值获取等级 */
	int32 FindLevelForXP(int32 XP) const;
};
